import setting from '@/settings/projectSetting.js'
import util from './util.js'
/**
 * 货币符号
 * @param {String,number} val
 * @param {String} unit 后面单位(元)
 * @param {String} fixed 保留几位小数， 默认2位
 */
export function formatCurrency(val, unit = null, fixed = null) {
  if (util.isDef(unit)) {
    return parseFloat(val) + unit
  }
  if (val % 1 === 0) {
    if (util.isUndef(fixed)) {
      return setting.appMoneySymbol + parseFloat(val)
    } else {
      return setting.appMoneySymbol + parseFloat(val).toFixed(fixed)
    }
  } else {
    return setting.appMoneySymbol + parseFloat(val)
  }
}

/**
 * 掩码 147****2222
 * @param { String } val 掩码字符
 * @param { number } start 默认显示前3位
 * @param { number } end 默认显示后4位
 */
export function formatMask(val, start, end) {
  val = val.toString() // 转换成字符串
  start = 3 // 前3位
  end = 4 // 后4位
  let len = val.length - start - end
  let symbol = ''
  for (var i = 0; i < len; i++) {
    symbol += '*'
  }
  return val.substring(0, start) + symbol + val.substring(val.length - end)
}

/**
 * 将秒转化为时间格式
 * @param {number} s 秒
 * @param {string} fmt yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合
 * @param {string} num 等于零是否显示
 * @returns {string}
 */
export function formatSeconds(s, fmt = 'hh-mm-ss') {
  let day = Math.floor(s / (24 * 3600))
  let hour = Math.floor((s - day * 24 * 3600) / 3600)
  let minute = Math.floor((s - day * 24 * 3600 - hour * 3600) / 60)
  let second = s - day * 24 * 3600 - hour * 3600 - minute * 60
  let ret
  let opt = {
    'd+': day.toString(), // 日
    'h+': hour.toString(), // 时
    'm+': minute.toString(), // 分
    's+': second.toString(), // 秒
  }
  for (let k in opt) {
    ret = new RegExp('(' + k + ')').exec(fmt)
    if (ret) {
      fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'))
    }
  }
  return fmt
}

/**
 * 时间戳转日期
 */
export function filltime(timeStamp) {
  if (timeStamp > 0) {
    var date = new Date()
    date.setTime(timeStamp * 1000)
    var y = date.getFullYear()
    var m = date.getMonth() + 1
    m = m < 10 ? '0' + m : m
    var d = date.getDate()
    d = d < 10 ? '0' + d : d
    var h = date.getHours()
    h = h < 10 ? '0' + h : h
    var minute = date.getMinutes()
    var second = date.getSeconds()
    minute = minute < 10 ? '0' + minute : minute
    second = second < 10 ? '0' + second : second
    // return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
    return y + '-' + m + '-' + d + ' ' + h + ':' + minute
  } else {
    return ''
  }
}
